-- @owner:宋菲
-- @date:2024-03-15
-- @testpoint:1.测试使用函数，函数名称大小写不敏感，合理报错
-- @history:

--开启参数
set enable_ignore_case_in_dquotes to on;

--创建表并插入数据;expect:成功
drop table if exists t_ignore_case_in_dquotes_use_case0019_1;
create table t_ignore_case_in_dquotes_use_case0019_1(col1 int,col2 int); 

--step1:创建函数;expect:成功
drop function if exists f_ignore_case_in_dquotes_use_case0019_1;
create or replace function "f_ignore_case_in_dquotes_use_case0019_1"("col" int) returns int
as $$
begin
    insert into t_ignore_case_in_dquotes_use_case0019_1 values(1,1);
    return col;
end;
$$language plpgsql;
/

--step2:使用函数名为全小写;expect:成功
select "f_ignore_case_in_dquotes_use_case0019_1"(1);

--step3:使用函数名为全大写;expect:成功
select "F_IGNORE_CASE_IN_DQUOTES_USE_CASE0019_1"(1);

--step4:使用函数名为大小写混合;expect:成功
select "F_IgnoRE_CasE_IN_DQuoTes_USE_CAsE0019_1"(1);

--step5:使用函数名带有特殊符号;expect:成功
--创建函数
drop function if exists "f_ignore_case_in_dquotes_use_case0019_1_!@#$%^&*()?<>:;=+-";
create or replace function "f_ignore_case_in_dquotes_use_case0019_1_!@#$%^&*()?<>:;=+-"("col" int) returns int
as $$
begin
    insert into t_ignore_case_in_dquotes_use_case0019_1 values(1,1);
    return col;
end;
$$language plpgsql;
/
--调用函数
select "F_IGNORE_CASE_IN_DQUOTES_USE_CASE0019_1_!@#$%^&*()?<>:;=+-"(1);
--清理环境
drop function if exists "f_ignore_case_in_dquotes_use_case0019_1_!@#$%^&*()?<>:;=+-";

--step6:使用函数名带有单引号;expect:成功
--创建函数
drop function if exists "f_ignore_case_in_dquotes_use_case0019_1_''";
create or replace function "f_ignore_case_in_dquotes_use_case0019_1_''"("col" int) returns int
as $$
begin
    insert into t_ignore_case_in_dquotes_use_case0019_1 values(1,1);
    return col;
end;
$$language plpgsql;
/
--调用函数
select "F_IGNORE_CASE_IN_DQUOTES_USE_CASE0019_1_''"(1);
--清理环境
drop function if exists "f_ignore_case_in_dquotes_use_case0019_1_''";

--step7:使用存储过程名带有双引号;expect:成功
--创建函数
drop function if exists "f_ignore_case_in_dquotes_use_case0019_1_""""""";
create or replace function "f_ignore_case_in_dquotes_use_case0019_1_"""""""("col" int) returns int
as $$
begin
    insert into t_ignore_case_in_dquotes_use_case0019_1 values(1,1);
    return col;
end;
$$language plpgsql;
/
--调用函数
select "F_IGNORE_CASE_IN_DQUOTES_USE_CASE0019_1_"""""""(1);
--清理环境
drop function if exists "f_ignore_case_in_dquotes_use_case0019_1_""""""";

--step8:使用函数名带有单引号、双引号混合;expect:成功
--创建函数
drop function if exists "f_ignore_case_in_dquotes_use_case0019_1_''""";
create or replace function "f_ignore_case_in_dquotes_use_case0019_1_''"""("col" int) returns int
as $$
begin
    insert into t_ignore_case_in_dquotes_use_case0019_1 values(1,1);
    return col;
end;
$$language plpgsql;
/
--调用函数
select "F_IGNORE_CASE_IN_DQUOTES_USE_CASE0019_1_''"""(1);
--清理环境
drop function if exists "f_ignore_case_in_dquotes_use_case0019_1_''""";


--清理环境:expect:成功
drop function if exists f_ignore_case_in_dquotes_use_case0019_1;
drop table if exists t_ignore_case_in_dquotes_use_case0019_1;

--关闭参数
set enable_ignore_case_in_dquotes to off;
